import { IPSAppView } from '../../app/view/ipsapp-view';
import { IPSNavigateParamContainer } from '../ipsnavigate-param-container';
import { IPSDEFormDetail } from './ipsdeform-detail';
import { IPSDEFormItemUpdate } from './ipsdeform-item-update';
import { IPSLanguageRes } from '../../res/ipslanguage-res';

/**
 *
 * 继承父接口类型值[DRUIPART]
 * @export
 * @interface IPSDEFormDRUIPart
 */
export interface IPSDEFormDRUIPart
  extends IPSDEFormDetail,
    IPSNavigateParamContainer {
  /**
   * 自定义遮罩信息
   * @type {string}
   */
  maskInfo: string;

  /**
   * 遮罩模式
   * @description 值模式 [表单多数据部件遮罩模式] {-1：自动判断、 0：不显示、 1：新建数据时遮盖 }
   * @type {( number | -1 | 0 | 1)}
   * @default -1
   */
  maskMode: number | -1 | 0 | 1;

  /**
   * 遮罩信息语言资源
   *
   * @type {IPSLanguageRes}
   */
  getMaskPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 嵌入视图
   *
   * @type {IPSAppView}
   */
  getPSAppView(): IPSAppView | null;

  /**
   * 调用表单项更新
   *
   * @type {IPSDEFormItemUpdate}
   */
  getPSDEFormItemUpdate(): IPSDEFormItemUpdate | null;

  /**
   * 界面参数项名称
   * @type {string}
   */
  paramItem: string;

  /**
   * 父数据对象
   * @type {IModel}
   */
  parentDataJO: IModel;

  /**
   * 界面刷新触发表单项
   * @type {string}
   */
  refreshItems: string;

  /**
   * 需要进行保存
   * @type {boolean}
   */
  needSave: boolean;

  /**
   * 附加刷新项只赋值不刷新
   * @type {boolean}
   */
  refreshItemsSetParamOnly: boolean;
}
